﻿using System;
using System.Collections.Generic;
using System.Text;

namespace GeoFly
{
    public abstract class WaterVaporBase
    {
        public WaterVaporBase()
        {
        }
        /// <summary>
        /// the slope of the stauration vapor pressure curve
        /// </summary>
        /// <returns></returns>
        public abstract double TmpVapCurveSlp()
        ;
        /// <summary>
        /// latent heat of vaporization(MJ/kg);
        /// </summary>
        /// <returns></returns>
        public abstract double LatHeatVapor()
        ;
        /// <summary>
        /// mean air pressure;
        /// </summary>
        /// <returns></returns>
        public abstract double AirPressureInSite()
        ;
        /// <summary>
        /// psychrometric constant
        /// </summary>
        /// <returns></returns>
        public abstract double PsychroConst()
        ;
        /// <summary>
        /// saturation vapor pressure(kPa)
        /// </summary>
        /// <returns></returns>
        public abstract double SatuVapPressure()
        ;
        /// <summary>
        ///actual vapor pressure(kPa) 
        /// </summary>
        /// <param name="realhumd"></param>
        /// <returns></returns>

        public abstract double ActVapPressure(double realhumd)
        ;
        /// <summary>
        /// relative humidity;
        /// </summary>
        /// <param name="avp"></param>
        /// <returns></returns>
        public abstract double RelativeHmd(double avp)
        ;

        /// <summary>
        /// saturation vapor pressure;
        /// </summary>
        public double dSvp;
        /// <summary>
        /// meav daily temperature;
        /// </summary>
        public double dTav;
        /// <summary>
        /// elevation;
        /// </summary>
        public double dElev;
        /// <summary>
        /// maximum temperature
        /// </summary>
        public double dTmx;
        /// <summary>
        /// minimun temperature
        /// </summary>
        public double dTmn;
    }
}